home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
machack
/
Hacks97
/
WarriorsProgress.sit
/
Warrior’s Progress
/
source code
/
Source
/
Libraries
/
Trees
/
RedBlackLinkTree.h
< prev
next >
Wrap
Text File
|
1997-06-28
|
2KB
|
57 lines
// RedBlackLinkTree.h
#ifndef RedBlackLinkTree_h
#define RedBlackLinkTree_h
#ifndef RedBlackKeyTree_h
#include "RedBlackKeyTree.h"
#endif
template < class Key, class Content > class RedBlackLink;
template < class Key, class Content >
class RedBlackLinkTree: private RedBlackKeyTree<Key>
{
friend class RedBlackLink< Key, Content >;
typedef RedBlackLink< Key, Content > Node;
typedef RedBlackKey<Key> NodeBase;
typedef RedBlackKeyTree<Key> TreeBase;
private:
static Node *DownCast( NodeBase *n );
static const Node *DownCast( const NodeBase *n );
public:
void Add( Node& n ) { TreeBase::Add( n ); }
void Remove( Node& n ) { TreeBase::Remove( n ); }
TreeBase::RemoveAll;
TreeBase::IsEmpty;
Node *Root() { return DownCast( TreeBase::Root() ); }
const Node *Root() const { return DownCast( TreeBase::Root() ); }
Node *First() { return DownCast( TreeBase::First() ); }
const Node *First() const { return DownCast( TreeBase::First() ); }
Node *Last() { return DownCast( TreeBase::Last() ); }
const Node *Last() const { return DownCast( TreeBase::Last() ); }
Node *First( const Key& k ) { return DownCast( TreeBase::First( k ) ); }
const Node *First( const Key& k ) const { return DownCast( TreeBase::First( k ) ); }
Node *Last( const Key& k ) { return DownCast( TreeBase::Last( k ) ); }
const Node *Last( const Key& k ) const { return DownCast( TreeBase::Last( k ) ); }
Node *Find( const Key& k ) { return DownCast( TreeBase::Find( k ) ); }
const Node *Find( const Key& k ) const { return DownCast( TreeBase::Find( k ) ); }
Node& operator[]( const Key& k ) { return *DownCast( &TreeBase::operator[]( k ) ); }
const Node& operator[]( const Key& k ) const { return *DownCast( &TreeBase::operator[]( k ) ); }
TreeBase::Valid;
};
#endif